/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package br.siagefi.mb;

import br.siagefi.model.Funcionario;
import br.siagefi.service.FuncionarioService;
import java.io.Serializable;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

/**
 *
 * @author Paulo Lavarini
 */

@SessionScoped
@ManagedBean
public class FuncionarioBean implements Serializable{
    
  private Funcionario funcionario;
    private final FuncionarioService service;
    private List<Funcionario> funcionarios;

    public FuncionarioBean() {
        this.funcionario = new Funcionario();
        this.service = new FuncionarioService();
        this.carregarLista();
    }
    
     public final void carregarLista(){
         this.funcionarios = service.listar();
    }
    
    public String gravar(){
        service.inserir(this.getFuncionario());
        this.limparFormularioDoJsf();
        this.carregarLista();
        return "funcionario?faces-redirect=true";
    }
    
    public String alterar(Funcionario funcionario){
        this.setFuncionario(funcionario);
        return "incluirFuncionario";
    }
    
     public String remover(){
        service.remover(this.getFuncionario());
        this.limparFormularioDoJsf();
        this.carregarLista();
        return "funcionario";
    }
     
    public String remover(Funcionario funcionario){
        service.remover(funcionario);
        this.limparFormularioDoJsf();
        this.carregarLista();
        return "funcionario";
    }
  
    public void limparFormularioDoJsf(){
        this.funcionario = new Funcionario();
    }

    public Funcionario getFuncionario() {
        return funcionario;
    }

    public void setFuncionario(Funcionario funcionario) {
        this.funcionario = funcionario;
    }

    public List<Funcionario> getFuncionarios() {
        return funcionarios;
    }

    public void setFuncionarios(List<Funcionario> funcionarios) {
        this.funcionarios = funcionarios;
    }
}
